#include <iostream>
#include <functional>
using namespace std;
using namespace std::placeholders;

void print(int a, int b, int c)
{
    cout << "a = " << a << endl;
    cout << "b = " << b << endl;
    cout << "c = " << c << endl;
}


void test(int a, int b, const function<void(int,int)> &func)
{
    func(a,b);
}


int main(int argc, char **argv)
{
    print(1,2,3);

    test(5,6, bind(print,_1,_2, 0));

    //auto p = bind(print, _1, 0, _2);
    //p(5,6);
    //p(5,6,9);
    
    return 0;
}